﻿using System;
using System.Collections.Generic;
using System.Text;

namespace iri10
{
    static class NegUsuario
    {
        static Usuario[] lstUsuarios;

        public static Boolean Inicializar()
        {
            lstUsuarios = loadUsuarios();
            return true;
        }

        public static Usuario getUsuario(uint userId)
        {
            //Busco el usuario cuyo id sea userId
            int iCont = 0;

            while (lstUsuarios[iCont++].Id != userId);

            return lstUsuarios[--iCont];
        }

        public static Boolean logIn(String user, String pass)
        {

            Boolean find = false;
            int iCont = 0;


            //Busco el usuario
            while (!find && iCont <= lstUsuarios.GetUpperBound(0))
            {
                find = (lstUsuarios[iCont++].SNombreUsuario.CompareTo(user) == 0);
            }

            //Lo encontré?
            if (!find)
                return false;

            if(lstUsuarios[--iCont].SPassword.CompareTo(encriptar(pass))==0)
            {
                usuarioActual.User = lstUsuarios[iCont];
                return true;
            }
            return false;

        }

        private static String encriptar(String s)
        {
            //TODO: Encriptar
            return s;
        }

        public static Usuario[] loadUsuarios()
        {
            String sConsulta = "SELECT * FROM `usuarios`;";
            

            //Obtengo todos los usuarios de la bd
            Object [] resp = BaseDatos.Consultar(sConsulta);

            //Creo el vector de usuarios con el tamaño exacto
            Usuario[] ret = new Usuario[resp.GetUpperBound(0) + 1];

            //Cargo los usuarios
            for (int iCont = 0; iCont <= ret.GetUpperBound(0); iCont++)
            {
                ret[iCont] = new Usuario((Object[])resp[iCont]);
            }

            return ret;

        }
    }
}
